| ..:: Menu ::.. | ..:: Kurs C++ : Operatory arytmetyczne ::.. | ..::Info i Reklamy::.. |
|
Strona Główna Kursy DELPHI Kursy C++ Linki Forum Download Seriale Humor Reklama O autorze |
Przyznajmy szczerze: nasze dotychczasowe aplikacje nie wykonywały żadnych
sensownych zadań – bo czy można nimi nazwać wypisywanie ciągle tego samego tekstu?
Z pewnością nie. Czy to się szybko zmieni? Niczego nie obiecuję, jednak z czasem
powinno być w tym względzie coraz lepiej :D Umiemy liczyć!Tradycyjnie już zaczniemy od przykładowego programu: Po uruchomieniu skompilowanej aplikacji przekonasz się, iż jest to prosty… kalkulator :) Prosi on najpierw o dwie liczby całkowite i zwraca później wynik ich dodawania. Nie jest to może imponujące, ale z pewnością bardzo pożyteczne ;)Zajrzyjmy teraz w kod programu. Początkowa część funkcji main(): odpowiada za uzyskanie od użytkownika pierwszej z liczb. Mamy tu deklarację zmiennej, w której zapiszemy ową liczbę, wyświetlenie prośby przy pomocy strumienia wyjścia oraz pobranie wartości za pomocą strumienia wejścia. Kolejne trzy linijki są bardzo podobne do powyższych, gdyż ich zadanie jest niemal identyczne – chodzi oczywiście o zdobycie drugiej liczby naszej sumy. Nie ma więc potrzeby dokładnego ich omawiania. Ważny jest za to następny wiersz: Jest to deklaracja zmiennej nWynik, połączona z przypisaniem do niej sumy dwóch liczb uzyskanych poprzednio. Taką czynność (natychmiastowe nadanie wartości deklarowanej zmiennej) nazywamy inicjalizacją. Oczywiście można by zrobić to w dwóch instrukcjach, ale tak jest ładniej, prościej i efektywniej :) Ostatnie dwie linijki nie wymagają zbyt wiele komentarza – jest to po prostu wyświetlenie obliczonego wyniku i przywołanie znanej już skądinąd funkcji getch(), która oczekuje na dowolny klawisz. Rodzaje operatorów arytmetycznychZnak +, którego użyliśmy w napisanym przed chwilą programie, jest jednym z kilkunastu operatorów języka C++.Operatory dzielimy na kilka grup; jedną z nich są właśnie operatory arytmetyczne, które służą do wykonywania prostych działań na liczbach. Odpowiadają one podstawowym operacjom matematycznym, dlatego ich poznanie nie powinno nastręczać ci problemów. Przedstawia je ta oto tabelka: Pierwsze trzy pozycje są na tyle jasne i oczywiste, że darujemy sobie ich opis :) Przyjrzymy się za to bliżej operatorom związanym z dzieleniem. Operator / działa na dwa sposoby w zależności od tego, jakiego typu liczby dzielimy. Rozróżnia on bowiem dzielenie całkowite, kiedy interesuje nas jedynie wynik bez części po przecinku, oraz rzeczywiste, gdy życzymy sobie uzyskać dokładny iloraz. Rzecz jasna, w takich przypadkach jak 25 / 5, 33 / 3 czy 221 / 13 wynik będzie zawsze liczbą całkowitą. Gdy jednak mamy do czynienia z liczbami niepodzielnymi przez siebie, sytuacja nie wygląda już tak prosto. Kiedy zatem mamy do czynienia z którymś z typów dzielenia? Zasada jest bardzo prosta – jeśli obie dzielone liczby są całkowite, wynik również będzie liczbą całkowitą; jeżeli natomiast choć jedna jest rzeczywista, wtedy otrzymamy iloraz wraz z częścią ułamkową. No dobrze, wynika stąd, że takie przykładowe działanie da nam prawidłowy wynik 4.6. Co jednak zrobić, gdy dzielimy dwie niepodzielne liczby całkowite i chcemy uzyskać dokładny rezultat?… Musimy po prostu obie liczby zapisać jako rzeczywiste, a więc wraz z częścią ułamkową – choćby była równa zeru, przykładowo: Uzyskamy w ten sposób prawidłowy wynik 1.6. A co z tym dziwnym „procentem”, czyli operatorem %? Związany jest on ściśle z dzieleniem całkowitym, mianowicie oblicza nam resztę z dzielenia jednej liczby przez drugą. Dobrą ilustracją działania tego operatora mogą być… zakupy :) Powiedzmy, że wybraliśmy się do sklepu z siedmioma złotymi w garści celem nabycia drogą kupna jakiegoś towaru, który kosztuje 3 złote za sztukę i jest możliwy do sprzedaży jedynie w całości. W takiej sytuacji dzieląc (całkowicie!) 7 przez 3 otrzymamy ilość sztuk, które możemy kupić. Zaś będzie kwotą, która pozostanie nam po dokonaniu transakcji – czyli jedną złotówką. Czyż to nie banalne? ;) Priorytety operatorówProste obliczenia, takie jak powyższe, rzadko występują w prawdziwych programach. Najczęściej łączymy kilka działań w jedno wyrażenie i wtedy może pojawić się problem pierwszeństwa (priorytetu) operatorów, czyli po prostu kolejności wykonywania działań.W C++ jest ona na szczęście identyczna z tą znaną nam z lekcji matematyki. Najpierw więc wykonywane jest mnożenie i dzielenie, a potem dodawanie i odejmowanie. Możemy ułożyć obrazującą ten fakt tabelkę: Najlepiej jednak nie polegać na tej własności operatorów i używać nawiasów w przypadku jakichkolwiek wątpliwości. Nawiasy chronią przed trudnymi do wykrycia błędami związanymi z pierwszeństwem operatorów, dlatego stosuj je w przypadku każdej wątpliwości co do kolejności działań. W taki oto sposób zapoznaliśmy się właśnie z operatorami arytmetycznymi. Tajemnicze znakiTwórcy języka C++ mieli chyba na uwadze oszczędność palców i klawiatur programistów, uczynili więc jego składnię wyjątkowo zwartą i dodali kilka mechanizmów skracających zapis kodu. Z jednym z nich, bardzo często wykorzystywanym, zapoznamy się za chwilę. Otóż instrukcje w rodzaju mogą być, przy użyciu tej techniki, napisane nieco krócej. Zanim ją poznamy, zauważmy, iż we wszystkich przedstawionych przykładach po obu stronach znaku = znajdują się te same zmienne. Instrukcje powyższe nie są więc przypisywaniem zmiennej nowej wartości, ale modyfikacją już przechowywanej liczby.Korzystając z tego faktu, pierwsze dwie linijki możemy zapisać jako Jak widzimy, operator + przeszedł w +=, zaś * w *=. Podobna „sztuczka” możliwa jest także dla trzech pozostałych znaków działań11. Sposób ten nie tylko czyni kod krótszym, ale także przyspiesza jego wykonywanie (pomyśl, dlaczego!). Jeżeli chodzi o następne wiersze, to oczywiście dadzą się one zapisać w postaci Można je jednak skrócić (i przyspieszyć) nawet bardziej. Dodawanie i odejmowanie jedynki są bowiem na tyle częstymi czynnościami, że dorobiły się własnych operatorów ++ i –- (tzw. inkrementacji i dekrementacji), których używamy tak: lub12 tak: Na pierwszy rzut oka wygląda to nieco dziwnie, ale gdy zaczniesz stosować tę technikę w praktyce, szybko docenisz jej wygodę. <--- Wstecz | Dalej ---> |
Reklama To miejsce czeka na twoją reklame. Więcej informacji w dziale Reklama |